menu = {
    '北京': {
        '海淀': {
            '五道口': {
                '搜狐': {},
                '网易': {},
                '快手': {}
            },
            '中关村': {
                '爱奇艺': {},
                '汽车之家': {},
                '优酷': {},
            },
            '上地': {
                '百度': {},
                '小米': {},
            },
        },
        '昌平': {
            '沙河': {
                '阿泰包子': {},
                '北航': {},
            },
            '天通苑': {},
            '回龙观': {},
        },
        '朝阳': {},
        '东城': {},
    },
    '上海': {
        '闵行': {
            "人民广场": {
                '炸鸡店': {}
            }
        },
        '闸北': {
            '火车站': {
                '携程': {}
            }
        },
        '浦东': {},
    },
    '山东': {},
}

# 展示省province、市city、县county三级菜单。
# 输入b或者B返回上一级菜单。
# 输入q或者Q结束程序。

exit_flag = True
while exit_flag:
    for k1 in menu:
        print('1', k1)
    choice1 = input('>: ').strip()  # 北京
    if choice1 in menu:  # 北京   menu["北京"]
        while exit_flag:
            layer2 = menu[choice1]  # # 北京   menu["北京"]
            for k2 in layer2:  # menu["北京"]
                print('2', k2)
            choice2 = input('>>: ').strip()  # 海淀
            if choice2 in layer2:  # 海淀   menu["北京"]["海淀"]
                while exit_flag:
                    layer3 = layer2[choice2]
                    for k3 in layer3:  # menu["北京"]["海淀"]
                        print('3', k3)
                    choice3 = input('>>>: ').strip()  # 五道口 menu["北京"]["海淀"]["五道口"]
                    if choice3 in layer3:
                        while exit_flag:
                            layer4 = layer3[choice3]
                            for k4 in layer4:  # menu["北京"]["海淀"]["五道口"]
                                print('4', k4)
                            choice4 = input('>>>>: ').strip()  # 搜狐 往下没数据了
                            if choice4.upper() == "B":
                                break
                            elif choice4.upper() == "Q":
                                exit_flag = False
                    elif choice3.upper() == "B":
                        break
                    elif choice3.upper() == "Q":
                        exit_flag = False
            elif choice2.upper() == "B":
                break
            elif choice2.upper() == "Q":
                exit_flag = False
    elif choice1.upper() in ("B", "Q"):
        exit_flag = False
